package cn.tedu.oop;

import java.util.Arrays;

/**测试构造方法*/
public class TestConstructor {
    public static void main(String[] args) {
        /** 每一个类中默认都会存在一个没有参数的构造方法
         * 每次new对象时,都会自动触发这个类对应的构造方法来帮我们创建对象*/
        Person p=new Person();
        System.out.println(p.age);
        System.out.println(p.age);
        System.out.println(p.address);
        p.eat();
        /**每次创建对象时,都会执行构造方法
         * 构造方法的作用:用来创建对象的*/
        Person p2=new Person();
        Person p3=new Person(88);
        System.out.println(p3.name);
        System.out.println(p3.age);
        System.out.println(p3.address);
        Person p4=new Person("李逵",32,"柳树下");
        System.out.println(p4.name);
        System.out.println(p4.age);
        System.out.println(p4.address);
    }
}
class Person{

    String name;
    int age;
    String address;

    /**构造方法的格式:没有返回值类型,且与本类类名同名的方法
     * */
    /**如果提供了其他的构造函数,默认的无参构造会被覆盖,就不存在了
     * 所以,如果想不传参数构造对象的话,需要我们手动提供这个无参构造*/
    public Person(){
        System.out.println("我是person 类的无参构造");
    }
    public Person(int n){

        System.out.println("我是person类的含参构造"+n);
    }

    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
        System.out.println("我是person类的全参构造");
    }

    public void eat(){
        System.out.println("干饭不积极,思想有问题");
    }
}